<!--
 * @Date: 2020-02-24 10:26:02
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2020-05-25 15:18:12
 * @describe: --
 -->
<template>
  <nav class="aui-navbar" :class="`aui-navbar--${$store.state.navbarLayoutType}`">
    <div class="aui-navbar__header">
      <h1 class="aui-navbar__brand" @click="$router.push({ name: 'home' })">
        <!-- <a class="aui-navbar__brand-lg" href="javascript:;">{{ $t('brand.lg') }}</a>
        <a class="aui-navbar__brand-mini" href="javascript:;">{{ $t('brand.mini') }}</a>-->

        <img src="~@/assets/img/logo.png" alt />
      </h1>
    </div>
    <div class="aui-navbar__body">
      <el-menu class="aui-navbar__menu mr-auto" mode="horizontal">
        <el-menu-item index="1" @click="$store.state.sidebarFold = !$store.state.sidebarFold">
          <svg
            class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--switch"
            aria-hidden="true"
          >
            <use xlink:href="#icon-outdent" />
          </svg>
        </el-menu-item>
        <el-menu-item index="2" @click="refresh()">
          <svg
            class="icon-svg aui-navbar__icon-menu aui-navbar__icon-menu--refresh"
            aria-hidden="true"
          >
            <use xlink:href="#icon-sync" />
          </svg>
        </el-menu-item>
      </el-menu>
      <el-menu class="aui-navbar__menu" mode="horizontal">
        <el-menu-item index="1">
          <el-button
            v-if="$store.state.user.superAdmin === 1"
            type="text"
            @click.native="tenantHandle()"
          >
            <i class="el-icon-house el-icon--right"></i>
            {{ $t('tenant.current') }}：{{ $store.state.user.tenantName }}
          </el-button>
          <span v-else>
            <i class="el-icon-house el-icon--right"></i>
            {{ $t('tenant.current') }}：{{ $store.state.user.tenantName }}
          </span>
        </el-menu-item>
        <!-- <el-menu-item index="2">
          <el-dropdown placement="bottom" :show-timeout="0">
              <el-button size="mini">{{ $t('_lang') }}</el-button>
              <el-dropdown-menu slot="dropdown">
              <el-dropdown-item v-for="(val, key) in i18nMessages" :key="key" @click.native="$i18n.locale = key">{{ val._lang }}</el-dropdown-item>
              </el-dropdown-menu>
          </el-dropdown>
        </el-menu-item>-->
        <!-- <el-menu-item index="3">
          <a href="//www.renren.io/" target="_blank">
              <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true"><use xlink:href="#icon-earth"></use></svg>
          </a>
        </el-menu-item>-->
        <el-menu-item index="4" @click="fullscreenHandle()">
          <svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
            <use xlink:href="#icon-fullscreen" />
          </svg>
        </el-menu-item>
        <el-menu-item index="5" class="aui-navbar__avatar">
          <el-dropdown placement="bottom" :show-timeout="0">
            <span class="el-dropdown-link">
              <img :src="$store.state.user.headUrl" class="userImage" />
              <span>{{ $store.state.user.name }}</span>
              <el-badge
                v-if="this.$store.state.ReceiveNum!=0"
                class="mark"
                :value="this.$store.state.ReceiveNum"
              />
              <i class="el-icon-arrow-down"></i>
            </span>
            <el-dropdown-menu slot="dropdown">
              <el-dropdown-item @click.native="viewMessage()">
                消息
                <el-badge
                  v-if="this.$store.state.ReceiveNum!=0"
                  class="mark"
                  :value="this.$store.state.ReceiveNum"
                />
              </el-dropdown-item>
              <el-dropdown-item @click.native="Personal()">个人中心</el-dropdown-item>
              <el-dropdown-item
                @click.native="updatePasswordHandle()"
              >{{ $t('updatePassword.title') }}</el-dropdown-item>
              <el-dropdown-item @click.native="logoutHandle()">{{ $t('logout') }}</el-dropdown-item>
            </el-dropdown-menu>
          </el-dropdown>
        </el-menu-item>
      </el-menu>
    </div>
    <!-- 弹窗, 修改密码 -->
    <update-password v-if="updatePassowrdVisible" ref="updatePassowrd"></update-password>
    <!-- 弹窗, 切换租户 -->
    <switch-tenant v-if="switchTenantVisible" ref="switchTenant"></switch-tenant>
  </nav>
</template>

<script>
import { messages } from "@/i18n";
import screenfull from "screenfull";
import UpdatePassword from "./main-navbar-update-password";
import SwitchTenant from "./main-navbar-switch-tenant";
import { clearLoginInfo } from "@/utils";
export default {
  inject: ["refresh"],
  data() {
    return {
      i18nMessages: messages,
      updatePassowrdVisible: false,
      switchTenantVisible: false
      // ReceiveNum: this.$store.state.ReceiveNum
    };
  },
  components: {
    UpdatePassword,
    SwitchTenant
  },
  beforeCreate() {
    this.$store.dispatch("lodAll"); //请求其他字典数据
  },
  methods: {
    // 全屏
    fullscreenHandle() {
      if (!screenfull.enabled) {
        return this.$message({
          message: this.$t("fullscreen.prompt"),
          type: "warning",
          duration: 500
        });
      }
      screenfull.toggle();
    },
    // 切换租户
    tenantHandle() {
      this.switchTenantVisible = true;
      this.$nextTick(() => {
        this.$refs.switchTenant.init();
      });
    },
    // 修改密码
    updatePasswordHandle() {
      this.updatePassowrdVisible = true;
      this.$nextTick(() => {
        this.$refs.updatePassowrd.init();
      });
    },
    // 退出
    logoutHandle() {
      this.$confirm(
        this.$t("prompt.info", { handle: this.$t("logout") }),
        this.$t("prompt.title"),
        {
          confirmButtonText: this.$t("confirm"),
          cancelButtonText: this.$t("cancel"),
          type: "warning"
        }
      )
        .then(() => {
          this.$http
            .post("/logout")
            .then(({ data: res }) => {
              if (res.code !== 0) {
                return this.$message.error(res.msg);
              }
              clearLoginInfo();
              this.$router.push({ name: "login" });
            })
            .catch(() => {});
        })
        .catch(() => {});
    },
    //查看消息
    viewMessage() {
      this.$router.push({ name: "sys-sysremind" });
    },
    Personal() {
      this.$router.push({ name: "userInfo" });
    }
  }
};
</script>
